$(function () {
    //初始化专业搜索条件
    $.initSubject({
        element:'subject-box',
        confirmBtn:false,
        removeBtn: false,
        style:false,
        notMultiple:true,
        classText:'form-control mb10',
        width:100,
        selectCallback:function(subjectIds){
            $("#subjectIds").val(subjectIds);
        }
    });

    //页面加载完成获取第一页数据
    queryAjaxMaterialList(1);
    $('body').on('click', '#submitFrom,#querySubmit', function () {
        //点击搜索查询从第一页开始查询
        queryAjaxMaterialList(1);
    }).on('click', '#tbody i.fa-eye', function () {
        var materialId = $(this).parent().data('id');
        parent.layer.open({
            area: winArea,
            btn: ['进入修改状态', '取消'],
            content: baseloaction + "/admin/course/material/showMaterialInfo?id=" + materialId,
            shade: [0.3, '#000'],
            shadeClose: false,
            title: '查看素材',
            type: 2,
            yes: function (index) {
                window.location = baseloaction + '/admin/course/material/initUpdate?id=' + materialId;
                parent.layer.close(index);
            }
        });
    }).on('click', '#tbody i.fa-arrow-up', function () { //单个发布
        var id = $(this).parent().data("id");
        icModale(2, '确认要发布该素材', 3, function () {
            updateMaterialStatus(id, 2);
        });
    }).on('click', '#tbody i.fa-arrow-down', function () { //单个取消发布
        var id = $(this).parent().data("id");
        icModale(2, '确认要取消发布该素材', 3, function () {
            updateMaterialStatus(id, 1);
        });
    }).on('click', '#tbody i.fa-history', function () { //单个恢复浏览/播放
        var id = $(this).parent('a').data("id");
        icModale(2, '确认修改选中素材的浏览/播放状态为正常', 3, function () {
            updateMaterialPlayStatus(id, 1);
        });
    }).on('click', '#tbody i.fa-remove', function () { //单个冻结
        var id = $(this).parent('a').data("id");
        icModale(2, '确认修改选中素材的浏览/播放状态为冻结', 3, function () {
            updateMaterialPlayStatus(id, 2);
        });
    }).on('click', '#tbody i.fa-trash', function () { //单个删除
        var id = $(this).parent().data("id");
        icModale(2, '确认要删除该素材', 3, function () {
            updateMaterialStatus(id, 3);
        });
    }).on('click', '#publishedBatch', function () { //批量发布
        var ids = getMaterialIds();
        if (ids== null) {
            icModale(0, '请选择要发布的素材');
            return false;
        }
        icModale(2, '确认发布选中的素材', 3, function () {
            updateMaterialStatus(ids, 2);
        });
    }).on('click', '#unpublishedBatch', function () { //批量取消发布
        var ids = getMaterialIds();
        if (ids== null) {
            icModale(0, '请选择要取消发布的素材');
            return false;
        }
        icModale(2, '确认取消发布选中的素材', 3, function () {
            updateMaterialStatus(ids, 1);
        });
    }).on('click', '#unlockBatch', function () { //批量修改素材播放状态为冻结
        var ids = getMaterialIds();
        if (ids== null) {
            icModale(0, '请选择要冻结播放/浏览状态的素材');
            return false;
        }
        icModale(2, '确认修改选中素材的播放状态为冻结', 3, function () {
            updateMaterialPlayStatus(ids, 2);
        });
    }).on('click', '#historyBatch', function () { //批量修改素材播放状态为正常
        var ids = getMaterialIds();
        if (ids== null) {
            icModale(0, '请选择要恢复播放/浏览状态的素材');
            return false;
        }
        icModale(2, '确认修改选中素材的播放状态为正常', 3, function () {
            updateMaterialPlayStatus(ids, 1);
        });
    }).on('click', '#deleteBatch', function () { //批量修改素材状态为删除
        var ids = getMaterialIds();
        if (ids== null) {
            icModale(0, '请选择要删除的素材');
            return false;
        }
        icModale(2, '确认删除选中的素材', 3, function () {
            updateMaterialStatus(ids, 3);
        });
    }).on("click","#createMaterial",function () {
        parent.layer.open({
            area: winArea,
            content:baseloaction+"/admin/course/material/listMaterialType",
            shade: [0.3, '#000'],
            shadeClose: false,
            title: '新建素材',
            type: 2,
        });
    })

    /**
     * 获取素材列表页面
     * @param pageNo 当前页码
     */
    function queryAjaxMaterialList(pageNo) {
        var params = $("#search-form").serializeJSON();
        params = JSON.stringify(params);
        var obj = {
            url: baseloaction +'/admin/course/material/ajaxMaterialList',//请求URL
            contextId: 'material-list-context',//响应内容页面设置内容ID
            params: params,//请求参数
            pageNo: pageNo,//页码
            pageCall: queryAjaxMaterialList, //分页回调加载数据(点击上下页时调用,该方法也在加载页面完成时调用)
            selectAllId: 'select-all-material', //全选框ID
            callback: function () {//数据加载完成回调
            }
        };
        ajaxGetListData(obj)
    }

    /**
     * 更新素材状态
     * @param materialIds 素材ids
     * @param status 状态 1取消发布，2发布，3删除
     */
    function updateMaterialStatus(materialIds, status) {
        $.ajax({
            url: baseloaction + "/admin/course/material/updateMaterialStatus",
            data: {'ids': materialIds, 'status': status},
            dataType: 'json',
            success: function (response) {
                if(response.success==true){
                    var arr = (materialIds+"").split(",");
                    $.each(arr,function (index,id) {
                        if(id!=null && $.trim(id)!=''){
                            var em = $("#status-"+id);
                            var actionEm = $("#status-action-"+id);
                            if(status ==1){//取消发布
                                var _status = em.data("status");
                                if(parseInt(_status)==2){//必须是已发布状态下才可以取消发布
                                    em.data("status",1);
                                    em.html('<span class="label label-danger">未发布</span>');
                                    actionEm.attr("data-original-title","发布");
                                    actionEm.html('<i class="fa fa-arrow-up"></i>');
                                }
                            }
                            if(status ==2){//发布
                                em.data("status",2);
                                em.html('<span class="label label-info">已发布</span>');
                                actionEm.attr("data-original-title","取消发布");
                                actionEm.html('<i class="fa fa-arrow-down"></i>');
                            }
                            if(status==3){//删除
                                $("#material-"+id).remove();
                            }
                        }
                    });
                }else{
                    icModale(0, response.message);
                }
            },
            error: function () {
                icModale(0, '系统繁忙，更新素材状态失败');
            }
        });
    }

    /**
     * 修改素材播放/浏览状态
     * @param materialIds 素材ID串
     * @param status 状态 ，1正常，2冻结
     */
    function updateMaterialPlayStatus(materialIds, status) {
        $.ajax({
            url: baseloaction + "/admin/course/material/updateMaterialPlayStatus",
            data: {'ids': materialIds, 'status': status},
            dataType: 'json',
            success: function (response) {
                if(response.success==true){
                    var arr = (materialIds+'').split(",");
                    $.each(arr,function (index,id) {
                        if(id!=null && $.trim(id)!=''){
                            var em = $("#play-status-"+id);
                            var emAction = $("#play-status-action-"+id);
                            if(status==1){
                                em.html('<span class="label label-info">正常</span>');
                                emAction.attr("data-original-title","浏览/播放状态冻结");
                                emAction.html('<i class="fa fa-remove"></i>');
                            }
                            if(status==2){
                                em.html('<span class="label label-danger">冻结</span>');
                                emAction.attr("data-original-title","浏览/播放状态恢复");
                                emAction.html('<i class="fa fa-history"></i>');
                            }
                        }
                    });
                }else{
                    icModale(0, response.message);
                }
            },
            error: function () {
                icModale(0, '系统繁忙，更新素材播放/浏览状态失败');
            }
        });
    }


    /**
     * 获取选中的元素的id
     * @param checked 数组。选中的元素
     * @returns {string} 选中元素的id
     */
    function getMaterialIds() {
        var list = $('#tbody input.i-checks:checked');
        if(list==null || list.length <= 0){
            return null;
        }
        var materialIds = list.map(function () {
            return $(this).val();
        }).get().join(',');
        return materialIds;
    }
});
